package com.lakeworks.service;

import com.lakeworks.common.core.domain.AjaxResult;
import com.lakeworks.common.domain.channel.ProductInfo;
import com.lakeworks.domain.OprPickup;
import com.lakeworks.domain.vo.PickupVo;

import java.util.List;

/**
 * 入厂单Service接口
 *
 * @author lake
 * @date 2023-02-08
 */
public interface IOprPickupService {
    /**
     * 根据运单号查询入厂单数量
     */
    int countByExpressNo(String expressNo);

    /**
     * 查询入厂单
     *
     * @param id 入厂单主键
     * @return 入厂单
     */
    OprPickup selectOprPickupById(Long id);

    /**
     * 查询入厂单列表
     *
     * @param oprPickup 入厂单
     * @return 入厂单集合
     */
    List<OprPickup> selectOprPickupList(OprPickup oprPickup);

    /**
     * 修改入厂单
     *
     * @param oprPickup 入厂单
     * @return 结果
     */
    int updateOprPickup(OprPickup oprPickup);

    AjaxResult signFor(String expressNo, boolean flag);

    OprPickup selectByChannelIdAndChPickupNo(Long id, String pickupNo);

    int insertOprPickup(OprPickup oprPickup);

    List<ProductInfo> pickupInfoById(Long id);

    ProductInfo productInfoById(Long id, String barcode);

    String selectOrderNoByBarcode(String barcode);

    void pickupCancel(Long pickupId);

    PickupVo selectPickupVoById(Long id);
}
